/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositePanel.js<br>
 * 日期：2016年8月3日<br>
 * 作者: 王志远<br>
 * 功能：Panel组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositePanel<br>
 * 类型功能：布局类声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositePanel = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositePanel",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite ：  	父组件实例<br>
	 * 参数输入：objProperties		 ： 	
	 * {
	 * 		iconCls:"icon-save",             //在面板中增加一个icon-save类，作用是显示一个16*16的图标
	 * 		width:"400",					 //设置面板的宽度
	   		style:"{borderWidth:2}",		 //设置面板样式：边框的宽是2
	   		fit:"ture"						 //设置面板尺寸自动适应父容器的尺寸
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>  	
	 * 异常信息：<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onBeforeLoad',
		                     'onLoad',
		                     'onLoadError',
		                     'onBeforeOpen',
		                     'onOpen',
		                     'onBeforeClose',
		                     'onClose',
		                     'onBeforeDestroy',
		                     'onDestroy',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onResize',
		                     'onMove',
		                     'onMaximize',
		                     'onRestore',
		                     'onMinimize'
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent 父组件节点元素<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("div",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.panel(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod 方法名称<br>
	 * 参数输入：objArgs 方法参数<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().panel(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.options<br>
	 * 函数功能：返回选项（options）属性（property）<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	options : function(){
		return this.getElement().panel('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.header<br>
	 * 函数功能：返回面板（panel）头部对象<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	header : function(){
		return this.getElement().panel('header');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.footer<br>
	 * 函数功能：返回面板（panel）底部对象<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	footer : function(){
		return this.getElement().panel('footer');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.body<br>
	 * 函数功能：返回面板（panel）主体对象<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	body : function(){
		return this.getElement().panel('body');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.setTitle<br>
	 * 函数功能：设置头部的标题文本<br>
	 * 参数输入：sTitle 头部标题<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setTitle : function(sTitle){
		this.getElement().panel('setTitle',sTitle);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.ope<br>
	 * 函数功能：当参数设置为 true 时，就绕过 onBeforeOpen 回调函数打开面板<br>
	 * 参数输入：bForceOpen  参数为布尔类型，true/false。<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	open : function(bForceOpen){
		this.getElement().panel('open',bForceOpen);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.close<br>
	 * 函数功能：当参数设置为 true 时，就绕过 onBeforeClose 回调函数关闭面板<br>
	 * 参数输入：bForceClose  参数为布尔类型，true/false。<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	close : function(bForceClose){
		this.getElement().panel('close',bForceClose);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.destroy<br>
	 * 函数功能：当参数设置为 true 时，就绕过 onBeforeDestroy 回调函数销毁面板<br>
	 * 参数输入：bForceDestroy  参数为布尔类型，true/false。
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	destroy : function(bForceDestroy){
		this.getElement().panel('destroy',bForceDestroy);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.clear<br>
	 * 函数功能：清楚面板内容<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	clear : function(){
		this.getElement().panel('clear');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.refresh<br>
	 * 函数功能：刷新面板（panel）加载远程数据。如果分配了参数，将重写参数属性。<br>
	 * 参数输入：href  如：'new_content.php'<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	refresh : function(sHerf){		
			this.getElement().panel('refresh',sHerf);					
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.resize<br>
	 * 函数功能：设置面板（panel）尺寸并做布局<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	resize : function(objOptions){
		this.getElement().panel('resize',objOptions);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.doLayout<br>
	 * 函数功能：设置子组件尺寸<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	doLayout : function(){
		this.getElement().panel('doLayout');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.move<br>
	 * 函数功能：移动面板（panel）到新位置<br>
	 * 参数输入：objOptions   包括下列属性：left：新的面板（panel）左边位置，top：新的面板（panel）顶部位置<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	move : function(objOptions){
		this.getElement().parent().css({"position":"absolute"});
		this.getElement().panel('move',objOptions);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.callUiMethod<br>
	 * 函数功能：面板（panel）适应它的容器的尺寸<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	maximize : function(){
		this.getElement().panel('maximize');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.minimize<br>
	 * 函数功能：面板（panel）适应它的容器的尺寸<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	minimize : function(){
		this.getElement().panel('minimize');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.restore<br>
	 * 函数功能：把最大化的面板（panel）还原为它原来的尺寸和位置<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	restore : function(){
		this.getElement().panel('restore');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.collapse<br>
	 * 函数功能：折叠面板（panel）主体<br>
	 * 参数输入：sAnimate，表示折叠的动画。<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	collapse : function(sAnimate){
		this.getElement().panel('collapse',sAnimate);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositePanel.expand<br>
	 * 函数功能：展开面板（panel）主体<br>
	 * 参数输入：sAnimate，表示展开的动画。<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	expand : function(sAnimate){
		this.getElement().panel('expand',sAnimate);
	},

    /**
     * 函数名称：com.rainier.easyuiex.UIComposite.refreshOptions<br>
     * 函数功能：重新刷新选项<br>
     * 参数输入：options Object 选项JSON对象<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    refreshOptions : function(options) {
        var ele = this.getElement();
        ele.panel(options);
    },

    /**
     * 函数名称：com.rainier.easyuiex.UIComposite.getOptions<br>
     * 函数功能：获取选项值<br>
     * 函数返回：Object 选项JSON对象<br>
     * 异常信息：无<br>
     */
    getOptions : function() {
        var ele = this.getElement();
        var options = ele.panel("options");
        return options;
    },
});